<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jsTree v.1.0 - checkbox documentation</title>
<script type="text/javascript" src="../_lib/jquery.js"></script>
<script type="text/javascript" src="../_lib/jquery.cookie.js"></script>
<script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
<script type="text/javascript" src="../jquery.jstree.js"></script>

<link type="text/css" rel="stylesheet" href="syntax/!style.css" />
<link type="text/css" rel="stylesheet" href="!style.css" />
<script type="text/javascript" src="syntax/!script.js"></script>
</head>
<body>
	<div id="container">

		<h1 id="dhead">jsTree v.1.0</h1>
		<h1>checkbox plugin</h1>
		<h2>Description</h2>
		<div id="description">
			<p>
				The
				<code>checkbox</code>
				plugin makes multiselection possible using three-state checkboxes.
			</p>
		</div>

		<h2 id="configuration">Configuration</h2>
		<div class="panel configuration">

			<h3>override_ui</h3>
			<p class="meta">
				A boolean. Default is
				<code>false</code>
				.
			</p>
			<p>
				If set to
				<code>true</code>
				all selection will be handled by checkboxes. The checkbox plugin
				will map UI's <a href="ui.html#get_selected">get_selected
					function</a> to its own <a href="#get_checked">get_checked function</a>
				and overwrite the <a href="ui.html#reselect">UI reselect
					function</a>. It will also disable the
				<code>select_node</code>
				,
				<code>deselect_node</code>
				and
				<code>deselect_all</code>
				functions. If left as
				<code>false</code>
				nodes can be selected and checked independently.
			</p>

			<h3>checked_parent_open</h3>
			<p class="meta">
				A Boolean. Default is
				<code>true</code>
				.
			</p>
			<p>
				When set to
				<code>true</code>
				when programatically checking a node in the tree all of its closed
				parents are opened automatically.
			</p>

			<h3>two_state</h3>
			<p class="meta">
				A boolean. Default is
				<code>false</code>
				.
			</p>
			<p>
				If set to
				<code>true</code>
				checkboxes will be two-state only, meaning that you will be able to
				select parent and children independently and there will be no
				undetermined state.
			</p>

			<h3>real_checkboxes</h3>
			<p class="meta">
				A boolean. Default is
				<code>false</code>
				.
			</p>
			<p>
				If set to
				<code>true</code>
				real hidden checkboxes will be created for each element, so if the
				tree is part of a form, checked nodes will be submitted
				automatically. By default the name of the checkbox is
				<code>
					"check_" + <em>the ID of the LI element</em>
				</code>
				and the value is
				<code>1</code>
				, this can be changed using the
				<code>real_checkboxes_names</code>
				config option.
			</p>

			<h3>real_checkboxes_names</h3>
			<p class="meta">
				A function. Default is
				<code>function (n) { return [("check_" + (n[0].id ||
					Math.ceil(Math.random() * 10000))), 1]; }</code>
				.
			</p>
			<p>If real checkboxes are used this function is invoked in the
				current tree's scope for each new checkbox that is created. It
				receives a single argument - the node that will contain the
				checkbox. The function must return an array consisting of two values
				- the name for the checkbox and the value for the checkbox.</p>

		</div>

		<h2 id="demos">Demos</h2>
		<div class="panel">
			<h3>Using the checkbox plugin - all you need to do is include it
				in the list of active plugins.</h3>
			<div id="demo1" class="demo">
				<ul>
					<li id="phtml_1"><a href="#">Root node 1</a>
						<ul>
							<li id="phtml_2" class="jstree-checked"><a href="#">Child
									node 1</a></li>
							<li id="phtml_3"><a href="#">A Child node 2</a></li>
						</ul></li>
					<li id="phtml_4"><a href="#">Root node 2</a></li>
				</ul>
			</div>
			<script type="text/javascript" class="source">
$(function () {
	$("#demo1").jstree({ 
		"plugins" : [ "themes", "html_data", "checkbox", "sort", "ui" ]
	});
});
</script>

		</div>

		<h2 id="api">API</h2>
		<div class="panel api">
			<h3 id="_prepare_checkboxes">._prepare_checkboxes ( node )</h3>
			<p>Inserts the checkbox icons on the node. Used internally.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
			</ul>

			<h3 id="_repair_state">._repair_state ( node )</h3>
			<p>Repairs the checkbox state inside the node. Used internally.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
			</ul>

			<h3 id="change_state">.change_state ( node , uncheck )</h3>
			<p>
				Changes the state of a node. Used mostly internally - you'd be
				better off using the
				<code>check_node</code>
				and
				<code>uncheck_node</code>
				functions. Triggers an event.
			</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
				<li><code class="tp">boolean</code> <strong>uncheck</strong>
					<p>
						If set to
						<code>true</code>
						the node is unchecked, if set to
						<code>false</code>
						the node is checked, otherwise - the state is toggled.
					</p></li>
			</ul>

			<h3 id="check_node">.check_node ( node )</h3>
			<p>Checks a node.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
			</ul>

			<h3 id="uncheck_node">.uncheck_node ( node )</h3>
			<p>Unchecks a node.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
			</ul>

			<h3 id="check_all">.check_all ( )</h3>
			<p>Checks all nodes.</p>

			<h3 id="uncheck_all">.uncheck_all ( )</h3>
			<p>Unchecks all nodes.</p>

			<h3 id="is_checked">.is_checked ( node )</h3>
			<p>Checks if a node is checked. Returns boolean.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree.</p></li>
			</ul>

			<div style="height: 1px; visibility: hidden; overflow: hidden;">
				<span id="get_unchecked">&#160;</span>
			</div>
			<h3 id="get_checked">.get_checked ( context, get_all ),
				.get_unchecked ( context, get_all )</h3>
			<p>Both functions return jQuery collections.</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>context</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						an element within the tree. If specified only nodes inside the
						specified context are returned, otherwise the whole tree is
						searched.</p></li>
				<li><code class="tp">boolean</code> <strong>get_all</strong>
					<p>
						By default these functions return only top level checked/unchecked
						nodes (if a node is checked its children are note returned), if
						this parameter is set to
						<code>true</code>
						they will return all checked/unchecked nodes.
					</p></li>
			</ul>

			<div style="height: 1px; visibility: hidden; overflow: hidden;">
				<span id="hide_checkboxes">&#160;</span>
			</div>
			<h3 id="show_checkboxes">.show_checkboxes ( ), .hide_checkboxes
				( )</h3>
			<p>Show or hide the checkbox icons.</p>

		</div>

	</div>
</body>
</html>